package com.ma.other;

import org.junit.Test;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class FunInterface {
    @Test
    public void test() {
        //消费接口 accept()方法 传入参数 没有返回   即消费该参数的一个接口
        Consumer<String> c = (x) -> {
            System.out.println(x);
        };
        c.accept("hello");

        //供给型接口 操作数据返回结果
        Supplier<String> s = () -> "sssssssssss";
        String s1 = s.get();
        System.out.println(s1);

        //函数型接口，传入某类型数据进行操作返回某类型数据
        Function<String, Integer> f = (x) -> x.length();
        Integer hahahahahhahaha = f.apply("hahahahahhahaha");
        System.out.println(hahahahahhahaha);

        //断言型接口 确认传入参数是否满足某约束 返回布尔值
        Predicate<String> p = (d) -> d.length() > 7;
        boolean hello_java = p.test("hello java");
        System.out.println(hello_java);
    }
}
